package com.ibm.risk.irmp.rule.service;


import com.ibm.risk.irmp.rule.model.SourceRuleDomain;
import com.ibm.risk.irmp.rule.vo.RuleResult;
import com.ibm.risk.irmp.rule.vo.RuleSumResult;
import org.springframework.web.bind.annotation.PathVariable;

import java.util.List;
import java.util.Map;

/**
 * @author WeiYZZhou
 */
public interface RuleEngineService {

    RuleSumResult fireRule(String domain, Map<String, Object> params);

    RuleResult<?> executeRules(@PathVariable String domain, List<Map<String, Object>> dataList) throws Exception;

    String genRuleScript(SourceRuleDomain sourceRuleDomain) throws Exception;

    void deployRuleDomain(SourceRuleDomain sourceRuleDomain) throws Exception;
}
